/*
 * Copyright (c) 2025 CAX Conversion Project
 */
package com.comac.ins.isfd.domain.bo;

import com.comac.ins.common.core.validate.AddGroup;
import com.comac.ins.common.core.validate.EditGroup;
import com.comac.ins.common.mybatis.core.domain.BaseEntity;
import com.comac.ins.isfd.domain.IsfdBusinessScenarios;

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 用于存储业务场景及其相关信息的格业务对象 isfd_business_scenarios
 *
 * @author Lion Li
 * @date 2024-12-04
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = IsfdBusinessScenarios.class, reverseConvertGenerate = false)
public class IsfdBusinessScenariosBo extends BaseEntity {

    /**
     * 自增主键，唯一标识每一个记录
     */
    @NotNull(message = "自增主键，唯一标识每一个记录不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 业务场景代码，用于唯一标识业务场景
     */
    @NotBlank(message = "业务场景代码，用于唯一标识业务场景不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sceneCode;

    /**
     * 业务场景名称，用于描述该业务场景的名称
     */
    @NotBlank(message = "业务场景名称，用于描述该业务场景的名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sceneName;

    /**
     * 业务场景描述
     */
    @NotBlank(message = "业务场景描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sceneDescription;

    /**
     * 业务系统名称，该场景所属的业务系统
     */
    @NotBlank(message = "业务系统名称，该场景所属的业务系统不能为空", groups = { AddGroup.class, EditGroup.class })
    private String systemName;

    /**
     * 是否启用，默认值为TRUE表示启用状态
     */
    @NotNull(message = "是否启用，默认值为TRUE表示启用状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isEnabled;


}
